package cn.tedu.spring.student;

import cn.tedu.spring.cat.Cat;
import cn.tedu.spring.cat.CatConfig;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import java.util.Scanner;

/**
 * Author：程Sir
 * Name： SpringTest01
 * Content:
 */
public class SpringTest {

    public static void main(String[] args) {
        // 程序运行时，会从这个容器中创建要使用对象！！！！
        AnnotationConfigApplicationContext acac = new AnnotationConfigApplicationContext(StudentConfig.class);
        // 获取容器中的对象
        Object obj = acac.getBean("getStu");
        Student student = (Student) obj;
        System.out.println(student);

        // 容器对象实例化时。是需要传入配置类的反射作为参数的。这个容器对象时候化时，就可以安装配置类中配置信息将指定的对象保存到spring容器中
        // 从spring容器中获取配置类中对象，是依据存入对象的方法名进行获取的！！！！
        Student student1 = acac.getBean("getStu", Student.class);
        System.out.println(student1);
    }

   @Test
   public void test(){
       AnnotationConfigApplicationContext acac = new AnnotationConfigApplicationContext(StudentConfig.class);
       // 获取容器中的对象
       Object obj = acac.getBean("student");
       Student student = (Student) obj;
       System.out.println(student);

       // 容器对象实例化时。是需要传入配置类的反射作为参数的。这个容器对象时候化时，就可以安装配置类中配置信息将指定的对象保存到spring容器中
       // 从spring容器中获取配置类中对象，是依据存入对象的方法名进行获取的！！！！
       Student student1 = acac.getBean("student", Student.class);
       System.out.println(student1);
   }


   @Test
   public void test1(){  // 注意 junit4.0版本要求我们的测试方法：修饰词是public，返回值是void ，参数列表为空
       Integer a  = 111;
       System.out.println(a);

   }
    AnnotationConfigApplicationContext acac;
    @Test
    public void test2(){  // 注意 junit4.0版本要求我们的测试方法：修饰词是public，返回值是void ，参数列表为空
        System.out.println("第二步");
        Student student = acac.getBean("stu",Student.class);
        System.out.println(student);

    }
    @Before
    public void init(){
        System.out.println("第一步");
        acac = new AnnotationConfigApplicationContext(StudentConfig.class, CatConfig.class);
    }
    @After
    public void destory(){
        System.out.println("第三步");
        acac.close();
    }

    @Test
    public void test3(){
        Student student = acac.getBean("stu",Student.class);
        System.out.println(student);

        Cat  cat = acac.getBean("cat", Cat.class);
        System.out.println(cat);
    }
    @Test
    public void test4(){
        Cat  cat = acac.getBean("xiaohua", Cat.class);
        System.out.println(cat);
    }

    @Test
    public void test5(){
        Cat  cat = acac.getBean("小花", Cat.class);
        System.out.println(cat);
    }
}
